ایجاد لوگین فرم در نرم افزار اکسس
سلام و دورود فراوان به شمایی که الان دارید این مطلب از سایت سافت پلاس را مطالعه می کنید. خوشحالم که قرار است باز هم در یک آموزش دیگر از طری مطالب آموزش اکسس با هم همراه باشیم موضوعی که امروز می خواهیم در موردش صحبت کنیم لوگین فرم یا همان فرم ورود در نرم افزار اکسس است .
لاگین فرم یکی از اجزا و قابلیت های بسیار کاربردی و مفید در اکسس است که دیر یا زود به استفاده از آن احتیاج پیدا خواهید کرد .
استفاده از لوگین فرم از چند جهت می تواند حائز اهمیت باشد :
اول اینکه استفاده از یک فرم ورود یا همان Login Form به نرم افزار اکسس شما یک حالت پیشرفته ای می دهد .
از طرفی دیگر هم می توان با طراحی و ایجاد یک فرم ورود سطح امنیت بانک اطلاعاتی خود را تا حد زیادی بالا ببرید .
اما برای ایجاد یک لوگین فرم چه کارهایی باید انجام بدهید ؟
برای ایجاد یک لوگین فرم روش های مختلفی وجود دارد .
هر کدام از این روش ها هم کاملا بستگی به نوع نیاز و هدف شما از ایجاد یک فرم ورود دارد .
بنابراین این فرم ها می توانند از یک حالت بسیار ساده و مبتدی تا حالات کاملا پیشرفته متغیر باشد .
اما امروز ما می خواهیم به بررسی و ایجاد یک فرم ورود در اکسس بپردازیم و قابلیت های مورد نظر خود را در آن اعمال کنیم .
کارهایی که قرار است در این آموزش در مورد آنها صحبت کنیم :
1- نحوه طراحی یک فرم ورود به صورتی که به محض وارد شدن کاربر به برنامه ما با این فرم ورود مواجه شود
2- طراحی باکس هایی برای دریافت اطلاعات کاربری و رمز ورود از کاربر
3- نمایش رمز ورود کاربر به صورت کاراکترهای ستاره
4- تنظیم پیغام های مناسب برای هر مرحله از کار
5- طراحی یک ساز و کار که اگر کاربر بیشتر از 3 بار رمز ورودش را نادرست وارد کرد دیگر برنامه مانع از ادامه کارش شود .
و البته یک سری نکات و ترفندهای دیگر که سر جای خودشان راجع به انها صحبت خواهم کرد .
پس از شما می خواهم که تا انتهای این آموزش با من همراه باشید .
مراحل ساخت یک لوگین فرم در اکسس
در قدم اول ما باید جدولی داشته باشیم که در آن جدول اطلاعات کاربران شامل نام کاربری و پسورد مختص به هر کاربر را در خود ذخیره کند .
خوب برای ایجاد این جدول دست به کار می شویم .
ما در این جدول به سه فیلد احتیاج داریم :
فیلد اول برای ذخیره یک کلید اولیه است که می تواند هر چیزی باشد .
فیلد دوم برای ذخیره نام کاربری .
فیلد سوم هم برای ذخیره گذرواژه یا پسورد مربوط به هر کاربر
تصویر زیر نمای این جدول را در محیط طراحی نشان می دهد .
در مورد تصویر بالا به دو نکته زیر توجه کنید :
اول اینکه نام مربوط به هر فیلد را مد نظر داشته باشید . از این اسامی فیلدها در مراحل بعدی و در حین کد نویسی استفاده خواهیم کرد .
برای امنیت هر چه بیشتر و برای اینکه اطلاعات مربوط به گذرواژه شما محرمانه بماند می توانید در قسمت Input mask از فرمت password استفاده کنید .
با این کار تمام کاراکترهایی را که در این فیلد وارد می کنید بصورت یک علامت ( * ) نمایش داده می شود .
حالا چند کاربر را در این جدول وارد کرده و برای هر کدام از آنها یک پسورد تعریف کنید .
در آینده قرار است این اطلاعات در اختیار کاربران شما قرار گیرند تا با استفاده از آنها بتوانند وارد بانک اطلاعاتی شما شوند .
جدول فوق نمایی از این جدول را که تکمیل شده است به نمایش می گذارد .
مرحله دوم : طراحی و ایجاد یک فرم ورود
خوب جدول مورد نظر خود را ایجاد کردیم .
حالا باید برویم به سراغ ایجاد یک فرم ورود .
کاری که این فرم قرار است برای ما انجام دهد این است که اطلاعات را از کاربر دریافت کرده و آنها را با اطلاعات موجود در جدولی که در مرحله قبل ایجاد کردیم مقایسه کند .
سپس بر مبنای این مقایسه برنامه مسیر مناسب را در پیش بگیرد .
اول برویم به سراغ خود ایجاد فرم و تنظیمات مربو ط به آن .
فرم ورود ما شامل اجزا و یا بهتر است بگویم اشیای زیر است :
یک تکس باکس جهت دریافت نام کاربری .
یک تکس باکس دیگر برای دریافت گذرواژه .
یک دکمه جهت کنترل و مقایسه داده ها در فرم و جدول مربوطه.
برای این کار من فرم زیر را آماده کرده ام .
توی این فرم دو تا تکس باکس داریم .
تکس باکس اول که برای دریافت نام کاربر است به نام txt-user نام گذاری شده است .
تکس باکس دوم که برای دریافت پسورد می باشد به نام txt-pass نام گذاری شده است .
دکمه با عنوان ورود هم به اسم cmd-log نام گذاری شده است .
حالا باید برویم به سراغ بخش اصلی ماجرا که همان کد نویسی مربوط به فرم ورود می باشد .
مرحله سوم : شروع کدنویسی برای فرم
در اینجا مرحله به مرحله و قدم به قدم با هم پیش می رویم .
هدف اولمان این است که کنترل کنیم که وقتی کاربر بر روی دکمه فرم کلیک می کند کنترل کنیم که آیا تکس باکس های مربوط به نام کاربری و پسورد را تکمیل کرده است یا خیر .
البته قبل از اینکه به سراغ این کدها برویم مد نظر داشته باشید که تمامی کدهایی که در اینجا بررسی می کنیم همگی در داخل رویداد کلیک دکمه روی فرم ما قرار می گیرند.
در واقع در اینجا دو حالت رخ می دهد .
یا کاربر اطلاعات مربوط به تکس باکس نام کاربری را وارد کرده است یا در حالت دوم بدون اینکه این تکس باکس را وارد کند بر روی دکمه ورود کلیک کرده است .
بنابراین برای هر دو حالت باید کد نویسی کنیم .
اول کنترل می کنیم که آیا تکس باکس مربوط به نام کاربری تکمیل شده است یا خیر ؟ .
برای این کار از کد زیر استفاده می کنیم .
()Private Sub Command12_Click
If Me.txt_user = "" Then
"لطفا نام کاربری را وارد کنید" MsgBox
Me.txt_user.SetFocus
Me.txt_user.BackColor = vbYellow
End If
End Sub
خوب اولین هدف را ایجاد کردیم .
همین الان می توانید به فرم خود برگردید و این کد را امتحان کنید .
اول بدون اینکه مقداری در تکس باکس نام کاربری وارد کنید بر روی دکمه ورود کلیک کنید .
بلافاصله باید یک پیغام برای شما به نمایش درآید.
وقتی هم که این پیغام را تائید می کنید تکس باکس مربوط به نام کاربری برای شما به رنگ زرد در خواهد آمد تا شما متوجه شوید که در کدام تکس باکس به مشکل برخورده اید .
حالا یک مقدار در تکس باکس مربوط به نام کاربری وارد کنید و بر روی دکمه ورود کلیک کنید .
قاعدتا نباید اتفاق خاصی بیفتد چرا ؟
چون ما برای حالتی که تکس باکس خالی بماند کد نویسی کرده ایم اما برای حالتی که کاربر این اطلاعات را وارد کند هنوز کدی ننوشته ایم .
برای این حالت هم در ادامه کد نویسی خواهیم کرد .
اما قبل از اینکه به سراغ حالت دوم برویم اجازه بدهید با هم یک مشکل را بررسی کنیم .
برای اینکه متوجه این مشکل بشوید ابتدا مقداری را در تکس باکس نام کاربری وارد کنید .
حالا بدون اینکه دکمه ورود را بزنید همین مقداری را که وارد کردید را پاک کنید .
حالا بر روی دکمه ورود کلیک کنید .
طبق کدی که ما نوشتیم و با توجه به اینکه تکس باکس مربوط به نام کاربری خالی است باید یک پیغام برای ما به نمایش در آید .
اما این اتفاق نمی افتد ؟
چون تکس باکس ما در ظاهر خالی است اما در واقع مقدار آن برابر با Null است .
حالا اینکه این Null دیگر چیست بعدها راجع به آن صحبت خواهیم کرد .
اما برای رفع این مشکل کد خود را به شکل زیر اصلاح کنید .
()Private Sub Command12_Click
If IsNull(Me.txt_user) Or Me.txt_user = "" Then
MsgBox "áØÝÇ äÇã ˜ÇÑÈÑí ÑÇ æÇÑÏ ˜äíÏ "
Me.txt_user.SetFocus
Me.txt_user.BackColor = vbYellow
End If
End Sub
ما در این کد برای جلوگیری از این مشکل ما از تابع IsNull استفاده کردیم .
اگر می خواهید راجع به این تابع و سایر توابع در اکسس اطلاعات جامعی کسب کنید می توانید به جلد دوم کتاب آشنایی با توابع کاربردی مراجعه کنید .
خوب حالا برای تکس باکس دوم هم که مربوط به گذرواژه می باشد نیز باید همین پروسه را طی کنیم تا مطمئن شویم که کاربر اطلاعات این تکس باکس را هم پر می کند .
خوب برای این کار از کد زیر استفاده می کنیم .
If IsNull(Me.txt_pass) Or Me.txt_pass = "" Then
"لطفا گذرواژه را وارد کنید " MsgBox
Me.txt_pass.SetFocus
Me.txt_pass.BackColor = vbYellow
End If
پس در این مرحله توانستیم کنترل کنیم که آیا کاربر مقادیر لازم را در تکس باکس های مربوطه وارد کرده است یا خیر ؟
حالا می رویم سراغ مرحله بعد .
اعتبار سنجی مقادیر وارد شده در تکس باکس ها
حالا به مرحله ای رسیده ایم که کاربر هر دو تکس باکس را تکمیل کرده و بر روی دکمه ورود کلیک کرده است .
حالا ما باید کنترل کنیم که آیا این نام کاربری و گذرواژه معتبر هست یا نه ؟
در این جا دو حالت پیش می آید :
یا کاربر هر دو مقدار را به درستی وارد کرده است و می تواند وارد برنامه شود .
یا اینکه کاربر یک یا هر دو اطلاعات را اشتباه وارد کرده است .
برای تعیین هر دوی این حالت ها باید مقادیر وارد شده توسط کاربر را بگیریم و با مقادیر ذخیره شده در جدول خود مقایسه کنیم .
برای این مقایسه و اعتبار سنجی هم مراحل زیر را دنبال می کنیم :
۱- برای این کار من از کدهای زیر استفاده می کنم
_=If Me.txt_user.Value
_DLookup("User_Name", "tbl-login", "User_Name='" & Me.txt_user.Value & " ' ") And
Me.txt_pass.Value = DLookup("user_pass", "tbl-login", "user_pass='" & Me.txt_pass.Value & " ' ") Then
"خوش آمدید"MsgBox
Else
"لطفا دوباره امتحان کنید "&vbnewline& "نام کاربری یا گذرواژه اشتباه است " MsgBox
End If
در اینجا برای اینکه کنترل کنیم که آیا نام کاربری و پسوردی که توسط کاربر وارد شده است از قبل در جدول ما وجود دارد یا نه از تابع Dlookup استفاده کردیم .
این تابع یکی از توابع بسیار مهم و کاربردی در نرم افزار اکسس است .
البته اگر با این تابع آشنایی ندارید می توانید با مراجعه به مطلب آشنایی با تابع Dlookup در اکسس با نحوه استفاده و کار با آن آشنا شوید .
در اینجا ما هر دو تکس باکس ها و مقادیر آنها را کنترل می کنیم .
در صورت صحت اطلاعات یک پیغام خوش آمد گویی به کاربر نمایش داده می شود .
در صورتی که اطلاعات وارد شده نادرست باشد با یک پیغام مناسب به اطلاع کاربر رسانده می شود و از او می خواهیم که دوباره برای ورود تلاش کند .
در انتهای کار هم می خواهیم یک قابلیت جدید را تعریف کنیم .
با استفاده از این قابلیت کاری می کنیم که اگر کاربر سه بار متوالی اقدام به درج مشخصات کند اما این اطلاعات از سوی برنامه نامعتبر تشخیص داده شود دیگر به کاربر اجازه ورود به برنامه داده نمی شود .
در این حالت هم پیغام مناسبی را به کاربر نمایش خواهیم داد .
برای این کار هم از کدهای زیر استفاده می کنیم .
intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts > 3 Then
_ "شما بیش از سه بار ورود ناموفق داشتید ." MsgBox
vbCritical, "محدودیت دسترسی !"
Application.Quit
End If
بعد از انجام تمامی این مراحل فرمی خواهیم داشت که از آن می توان به عنوان فرم ورود کاربران استفاده کنیم .
حالا دو کار دیگر مانده که باید انجام دهیم .
کار اول این است که وقتی که کاربر سه بار اطلاعات نادرست را وارد کرد بطور خود کار از برنامه خارج شده و برنامه بسته شود .
برای این کار کافی است کد زیر را به کدهای خود اضافه کنیم .
DoCmd.CloseDatabase
در قدم بعدی هم باید کاری کنیم که وقتی کاربر برنامه را اجرا می کند اولین چیزی که به او نمایش داده می شود همین فرم ورود باشد.
خوب برای اینکار هم مراحل زیر را دنبال کنید .
بر روی منوی فایل کلیک کنید .
از کادر سمت چپ گزینه current Database را انتخاب کنید .
در قسمت Display Form نام فرم مورد نظر خود را وارد و این پتجره را ببندید .
دفعه بعد که نرم افزار اکسس خود را اجرا کنید این فرم برای شما به نمایش درخواهد آمد .
مطالب زیر را حتما مطالعه کنید
ساخت برچسب در اکسس💥چطور آنها را ایجاد و مدیریت کنیم ؟
ریبون ها در اکسس💥از مخفی کردن تا مدیریت کردن آنها
چطوری متن ها و تصاویر را بصورت متحرک در اکسس نمایش بدهیم ؟
فرمت دهی نوشته ها در اکسس | کاربرد + مثالها
۵ ویژگی در فرم های اکسس که کمتر از آنها خبر داشتید .
باز کردن گزارش اکسس برای یک رکورد مشخص + نمونه فایل
12 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
به به
بسیار عالی و آموزنده بود استاد
ممنون واقعا
یک سوال چگونه بعد از لاگین فرم اصلی به نمایش در بیاد؟
سلام ممنون از لطف شما .
در مورد سوالتون باید گفت که شما باید فرم اصلی خودتون رو در قالب یک ماکرو از نوع auto exce قرار دهید
سلام
وقت بخیر
من کد را کامل نوشتم اما مشکلی که وجود داره اینه ک وقتی.value را مینویسم این تابع جز توابع در کادر باز نمیشود بنابراین تابع valueرا نمیشناسد ممنون میشم راهنمایی کنید
عالی
توی همون مرحله اول برای اینکه دکمه خالی بودن فیلد رو بررسی کنه، اصلا کار نمیکنه
اکسس ۲۰۱۹ دارم
سلام بزودی یک نمونه در سایت قرار می گیرد
اون قسمت آخر که چک می کنه بیش از سه باز ورود ناموفق داشته کار نمی کنه . جای اون تکه کد کجاست؟ نباید داخل یک حلقه قرار بگیره ؟
سلام توی اولین فرصت یک ویدئو در مورد همین بخش آماده می کنم و داخل سایت قرار میدم
سلام
یک نمونه کار انجام شده را نمیشه اسال فرمائید ؟
در اولین فرصت نمونه قرار داده خواهد شد
سلام
استاد در قسمت dlookup گیر میکنم و نمیتونم جلوتر برم که پیغام خوش آمدی را ببینم و فرم Main را باز کنه اررو گذرواژه میده
لطفا راهنمایی بفرمایید
سلام دیلوکاپ تابع بدقلقی است . بیشتر خطاهایی که میده مربوط به استفاده از ویرگول یا نقطه ویرگول میشه اگه از ویرگول استفاده می کنید جاش رو با نقطه ویرگول عوض کنید و یا بر عکس
حتی وجود یک فضای خالی که اصلا به چشم هم نمیاد می تونه باعث بروز خطا بشه
ولی توی اولین فرصت سعی می کنم این مطلب رو آپدیت کنم و براش یک ویدئو آموزشی تهیه کنم